home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48hor1 / asm.doc < prev    next >
Text File  |  1995-03-31  |  13KB  |  631 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.                  S a t u r n   I n s t r u c t i o n   S e t 
  14.  
  15.                                Derek S. Nickel 
  16.  
  17.                                30 January 1991 
  18.      ================================================================ 
  19.  
  20.     0...    * misc operations (RTNs, modes, stack, status, P, logic) 
  21.  
  22.     1...    * data movement/loading (D0,D1,R0-R4) 
  23.  
  24.     2n    P=     n 
  25.  
  26.     3xn..n    LC(m)  n..n    (x = m - 1) 
  27.     3mc..c    LCASC  \A..A\    (m = 2*characters - 1) 
  28.     3nh..h    LCHEX  h..h    (n = digits - 1) 
  29.  
  30.     400    RTNC 
  31.     4aa    GOC    label 
  32.     420    NOP3 
  33.  
  34.     500    RTNNC 
  35.     5aa    GONC   label 
  36.  
  37.     6aaa    GOTO   label 
  38.     6300    NOP4 
  39.     64000    NOP5 
  40.  
  41.     7aaa    GOSUB  label 
  42.  
  43.     8...    * misc, tests and branching 
  44.  
  45.     9...    * tests w/fs 
  46.  
  47.     Aax    * math and assignment w/fs 
  48.     Abx    * math and assignment w/fs 
  49.     Bax    * math and assignment w/fs 
  50.     Bbx    * math and assignment w/fs 
  51.  
  52.     Cx    * math and assignment w/A 
  53.     Dx    * math and assignment w/A 
  54.     Ex    * math and assignment w/A 
  55.     Fx    * math and assignment w/A 
  56.      ================================================================ 
  57.         0 
  58.     ================================================================ 
  59.  
  60.     00    RTNSXM 
  61.     01    RTN 
  62.     02    RTNSC 
  63.     03    RTNCC 
  64.     04    SETHEX 
  65.     05    SETDEC 
  66.     06    RSTK=C 
  67.     07    C=RSTK 
  68.     08    CLRST 
  69.     09    C=ST 
  70.     0A    ST=C 
  71.     0B    CSTEX 
  72.     0C    P=P+1 
  73.     0D    P=P-1 
  74.     0Exx    * logic operations     
  75.     0F    RTI 
  76.  
  77.     -- field --- 
  78.      fs     A 
  79.     ------------ 
  80.     0Ea0    0EF0    A=A&B  field 
  81.     0Ea1    0EF1    B=B&C  field 
  82.     0Ea2    0EF2    C=C&A  field 
  83.     0Ea3    0EF3    D=D&C  field 
  84.     0Ea4    0EF4    B=B&A  field 
  85.     0Ea5    0EF5    C=C&B  field 
  86.     0Ea6    0EF6    A=A&C  field 
  87.     0Ea7    0EF7    C=C&D  field 
  88.  
  89.     0Ea8    0EF8    A=A!B  field 
  90.     0Ea9    0EF9    B=B!C  field 
  91.     0EaA    0EFA    C=C!A  field 
  92.     0EaB    0EFB    D=D!C  field 
  93.     0EaC    0EFC    B=B!A  field 
  94.     0EaD    0EFD    C=C!B  field 
  95.     0EaE    0EFE    A=A!C  field 
  96.     0EaF    0EFF    C=C!D  field 
  97.  
  98.     fs: P  WP XS X  S  M  B  W 
  99.     a:  0  1  2  3  4  5  6  7 
  100.      ================================================================ 
  101.         10, 11, 12 
  102.     ================================================================ 
  103.  
  104.     100    R0=A 
  105.     101    R1=A 
  106.     102    R2=A 
  107.     103    R3=A 
  108.     104    R4=A 
  109.     105     
  110.     106     
  111.     107     
  112.     108    R0=C 
  113.     109    R1=C 
  114.     10A    R2=C 
  115.     10B    R3=C 
  116.     10C    R4=C 
  117.     10D     
  118.     10E     
  119.     10F     
  120.  
  121.     110    A=R0 
  122.     111    A=R1 
  123.     112    A=R2 
  124.     113    A=R3 
  125.     114    A=R4 
  126.     115     
  127.     116     
  128.     117     
  129.     118    C=R0 
  130.     119    C=R1 
  131.     11A    C=R2 
  132.     11B    C=R3 
  133.     11C    C=R4 
  134.     11D     
  135.     11E     
  136.     11F     
  137.  
  138.     120    AR0EX 
  139.     121    AR1EX 
  140.     122    AR2EX 
  141.     123    AR3EX 
  142.     124    AR4EX 
  143.     125     
  144.     126     
  145.     127     
  146.     128    CR0EX 
  147.     129    CR1EX 
  148.     12A    CR2EX 
  149.     12B    CR3EX 
  150.     12C    CR4EX 
  151.     12D     
  152.     12E     
  153.     12F     
  154.      ================================================================ 
  155.         13 through 1F 
  156.     ================================================================ 
  157.  
  158.     130    D0=A 
  159.     131    D1=A 
  160.     132    AD0EX 
  161.     133    AD1EX 
  162.  
  163.     134    D0=C 
  164.     135    D1=C 
  165.     136    CD0EX 
  166.     137    CD1EX 
  167.  
  168.     138    D0=AS 
  169.     139    D1=AS 
  170.     13A    AD0XS 
  171.     13B    AD1XS 
  172.  
  173.     13C    D0=CS 
  174.     13D    D1=CS 
  175.     13E    CD0XS 
  176.     13F    CD1XS 
  177.  
  178.     ---------- field ----------- 
  179.      A     B     fs     d 
  180.     ----------------------------     
  181.     140    148    150a    158x    DAT0=A field 
  182.     141    149    151a    159x    DAT1=A field 
  183.     142    14A    152a    15Ax    A=DAT0 field 
  184.     143    14B    153a    15Bx    A=DAT1 field 
  185.     144    14C    154a    15Cx    DAT0=C field 
  186.     145    14D    155a    15Dx    DAT1=C field 
  187.     146    14E    156a    15Ex    C=DAT0 field 
  188.     147    14F    157a    15Fx    C=DAT1 field 
  189.  
  190.     16x    D0=D0+ n 
  191.     17x    D1=D1+ n 
  192.     18x    D0=D0- n 
  193.     19nn    D0=(2) nn 
  194.     19hh    D0=HEX hh 
  195.     1Annnn    D0=(4) nnnn 
  196.     1Ahhhh    D0=HEX hhhh 
  197.     1Bnnnnn    D0=(5) nnnnn 
  198.     1Bhhhhh    D0=HEX hhhhh 
  199.     1Cx    D1=D1- n 
  200.     1Dnn    D1=(2) nn 
  201.     1Dhh    D1=HEX hh 
  202.     1Ennnn    D1=(4) nnnn 
  203.     1Ehhhh    D1=HEX hhhh 
  204.     1Fnnnnn    D1=(5) nnnnn 
  205.     1Fhhhhh    D1=HEX hhhhh 
  206.  
  207.     fs: P  WP XS X  S  M  B  W 
  208.     a:  0  1  2  3  4  5  6  7 
  209.  
  210.     x = d - 1        x = n - 1 
  211.     d = x + 1        n = x + 1 
  212.      ================================================================ 
  213.         80 
  214.     ================================================================ 
  215.  
  216.     800    OUT=CS 
  217.     801    OUT=C 
  218.     802    A=IN 
  219.     803    C=IN 
  220.     804    UNCNFG 
  221.     805    CONFIG 
  222.     806    C=ID 
  223.     807    SHUTDN 
  224.  
  225.     8080    INTON 
  226.     80810    RSI 
  227.     8082xn..n    LA(m)  n..n    (x = m - 1) 
  228.     8082mc..c    LAASC  \A..A\    (m = 2*characters - 1) 
  229.     8082nh..h    LAHEX  h..h    (n = digits - 1) 
  230.     8083    BUSCB 
  231.     8084n    ABIT=0  d 
  232.     8085n    ABIT=1  d 
  233.     8086nyy    ?ABIT=0 d 
  234.     8087nyy    ?ABIT=1 d 
  235.     8088n    CBIT=0  d 
  236.     8089n    CBIT=1  d 
  237.     808Anyy    ?CBIT=0 d 
  238.     808Bnyy    ?CBIT=1 d 
  239.     808C    PC=(A) 
  240.     808D    BUSCD 
  241.     808E    PC=(C) 
  242.     808F    INTOFF     
  243.  
  244.     809    C+P+1 
  245.     80A    RESET 
  246.     80B    BUSCC 
  247.     80Cn    C=P    n 
  248.     80Dn    P=C    n 
  249.     80E    SREQ? 
  250.     80Fn    CPEX   n 
  251.      ================================================================ 
  252.         81 
  253.     ================================================================ 
  254.  
  255.     810    ASLC 
  256.     811    BSLC 
  257.     812    CSLC 
  258.     813    DSLC 
  259.     814    ASRC 
  260.     815    BSRC 
  261.     816    CSRC 
  262.     817    DSRC 
  263.     818     
  264.     819     
  265.     81A 
  266.     81B     
  267.     81C    ASRB 
  268.     81D    BSRB 
  269.     81E    CSRB 
  270.     81F    DSRB 
  271.  
  272.     -- field --- 
  273.      fs     A 
  274.     ------------ 
  275.     818a0n        A=A+n    field 
  276.     818a1n        B=B+n    field 
  277.     818a2n        C=C+n    field 
  278.     818a3n        D=D+n    field 
  279.  
  280.     818b0n        A=A-n    field 
  281.     818b1n        B=B-n    field 
  282.     818b2n        C=C-n    field 
  283.     818b3n        D=D-n    field 
  284.  
  285.     fs: P  WP XS X  S  M  B  W 
  286.     a:  0  1  2  3  4  5  6  7 
  287.     b:  8  9  A  B  C  D  E  F 
  288.      ================================================================ 
  289.         82 through 8F, 9 
  290.     ================================================================ 
  291.  
  292.     82n    no opcode, clear hardware status w/n as bit mask 
  293.     821    XM=0 
  294.     822    SB=0 
  295.     824    SR=0 
  296.     828    MP=0 
  297.     82F    CLRHST 
  298.  
  299.     831yy    ?XM=0 
  300.     832yy    ?SB=0 
  301.     834yy    ?SR=0 
  302.     838yy    ?MP=0 
  303.  
  304.     84n    ST=0   n 
  305.     85n    ST=1   n 
  306.     86nyy    ?ST=0  n    ?ST#1  n 
  307.     87nyy    ?ST=1  n    ?ST#0  n 
  308.     88nyy    ?P#    n 
  309.     89nyy    ?P=    n 
  310.     8Axyy    * tests w/A (equal and not equal) 
  311.     8Bxyy    * tests w/A (inequality) 
  312.     8Caaaa    GOLONG label 
  313.     8Daaaaa    GOVLNG label 
  314.     8Eaaaa    GOSUBL label 
  315.     8Faaaaa    GOSBVL label 
  316.     9zxyy    * tests w/fs 
  317.  
  318.     test00    RTNYES 
  319.     testyy    GOYES  label 
  320.  
  321.     Relative gotos (GOTO, GOLONG, GOC, GONC, GOYES): 
  322.     Offset is relative to the first nibble of the offset. 
  323.  
  324.     Relative gosubs (GOSUBm GOSUBL): 
  325.     Offset is relative to the first nibble of the next instruction. 
  326.      ================================================================ 
  327.         8A, 8B, 9 
  328.     ================================================================ 
  329.  
  330.     --- field ---- 
  331.       A      fs 
  332.     -------------- 
  333.     8A0yy    9a0yy    ?A=B   field        ?B=A   field 
  334.     8A1yy    9a1yy    ?B=C   field        ?C=B   field 
  335.     8A2yy    9a2yy    ?A=C   field        ?C=A   field 
  336.     8A3yy    9a3yy    ?C=D   field        ?D=C   field 
  337.     8A4yy    9a4yy    ?A#B   field        ?B#A   field 
  338.     8A5yy    9a5yy    ?B#C   field        ?C#B   field 
  339.     8A6yy    9a6yy    ?A#C   field        ?C#A   field 
  340.     8A7yy    9a7yy    ?C#D   field        ?D#C   field 
  341.     8A8yy    9a8yy    ?A=0   field 
  342.     8A9yy    9a9yy    ?B=0   field 
  343.     8AAyy    9aAyy    ?C=0   field 
  344.     8AByy    9aByy    ?D=0   field 
  345.     8ACyy    9aCyy    ?A#0   field 
  346.     8ADyy    9aDyy    ?B#0   field 
  347.     8AEyy    9aEyy    ?C#0   field 
  348.     8AFyy    9aFyy    ?D#0   field 
  349.  
  350.     8B0yy    9b0yy    ?A>B   field 
  351.     8B1yy    9b1yy    ?B>C   field 
  352.     8B2yy    9b2yy    ?C>A   field 
  353.     8B3yy    9b3yy    ?D>C   field 
  354.     8B4yy    9b4yy    ?A<B   field 
  355.     8B5yy    9b5yy    ?B<C   field 
  356.     8B6yy    9b6yy    ?C<A   field 
  357.     8B7yy    9b7yy    ?D<C   field 
  358.     8B8yy    9b8yy    ?A>=B  field 
  359.     8B9yy    9b9yy    ?B>=C  field 
  360.     8BAyy    9bAyy    ?C>=A  field 
  361.     8BByy    9bByy    ?D>=C  field 
  362.     8BCyy    9bCyy    ?A<=B  field 
  363.     8BDyy    9bDyy    ?B<=C  field 
  364.     8BEyy    9bEyy    ?C<=A  field 
  365.     8BFyy    9bFyy    ?D<=C  field 
  366.  
  367.     fs: P  WP XS X  S  M  B  W 
  368.     a:  0  1  2  3  4  5  6  7 
  369.     b:  8  9  A  B  C  D  E  F 
  370.      ================================================================ 
  371.         A, C, D 
  372.     ================================================================ 
  373.  
  374.     -- field -- 
  375.     A    fs 
  376.     ----------- 
  377.     C0    Aa0    A=A+B  field 
  378.     C1    Aa1    B=B+C  field 
  379.     C2    Aa2    C=C+A  field 
  380.     C3    Aa3    D=D+C  field 
  381.     C4    Aa4    A=A+A  field 
  382.     C5    Aa5    B=B+B  field 
  383.     C6    Aa6    C=C+C  field 
  384.     C7    Aa7    D=D+D  field 
  385.     C8    Aa8    B=B+A  field 
  386.     C9    Aa9    C=C+B  field 
  387.     CA    AaA    A=A+C  field 
  388.     CB    AaB    C=C+D  field 
  389.     CC    AaC    A=A-1  field 
  390.     CD    AaD    B=B-1  field 
  391.     CE    AaE    C=C-1  field 
  392.     CF    AaF    D=D-1  field 
  393.  
  394.     D0    Ab0    A=0    field 
  395.     D1    Ab1    B=0    field 
  396.     D2    Ab2    C=0    field 
  397.     D3    Ab3    D=0    field 
  398.     D4    Ab4    A=B    field 
  399.     D5    Ab5    B=C    field 
  400.     D6    Ab6    C=A    field 
  401.     D7    Ab7    D=C    field 
  402.     D8    Ab8    B=A    field 
  403.     D9    Ab9    C=B    field 
  404.     DA    AbA    A=C    field 
  405.     DB    AbB    C=D    field 
  406.     DC    AbC    ABEX   field 
  407.     DD    AbD    BCEX   field 
  408.     DE    AbE    ACEX   field 
  409.     DF    AbF    CDEX   field 
  410.  
  411.     fs: P  WP XS X  S  M  B  W 
  412.     a:  0  1  2  3  4  5  6  7 
  413.     a:  8  9  A  B  C  D  E  F 
  414.      ================================================================ 
  415.         B, E, F 
  416.     ================================================================ 
  417.  
  418.     -- field --- 
  419.     A    fs 
  420.     ------------ 
  421.     E0    Ba0    A=A+B  field 
  422.     E1    Ba1    B=B+C  field 
  423.     E2    Ba2    C=C+A  field 
  424.     E3    Ba3    D=D+C  field 
  425.     E4    Ba4    A=A+1  field 
  426.     E5    Ba5    B=B+1  field 
  427.     E6    Ba6    C=C+1  field 
  428.     E7    Ba7    D=D+1  field 
  429.     E8    Ba8    B=B-A  field 
  430.     E9    Ba9    C=C-B  field 
  431.     EA    BaA    A=A-C  field 
  432.     EB    BaB    C=C-D  field 
  433.     EC    BaC    A=B-A  field 
  434.     ED    BaD    B=C-B  field 
  435.     EE    BaE    C=A-C  field 
  436.     EF    BaF    D=C-D  field 
  437.      
  438.     F0    Bb0    ASL    field 
  439.     F1    Bb1    BSL    field 
  440.     F2    Bb2    CSL    field 
  441.     F3    Bb3    DSL    field 
  442.     F4    Bb4    ASR    field 
  443.     F5    Bb5    BSR    field 
  444.     F6    Bb6    CSR    field 
  445.     F7    Bb7    DSR    field 
  446.     F8    Bb8    A=-A   field 
  447.     F9    Bb9    B=-B   field 
  448.     FA    BbA    C=-C   field 
  449.     FB    BbB    D=-D   field 
  450.     FC    BbC    A=-A-1 field 
  451.     FD    BbD    B=-B-1 field 
  452.     FE    BbE    C=-C-1 field 
  453.     FF    BbF    D=-D-1 field 
  454.  
  455.     fs: P  WP XS X  S  M  B  W 
  456.     a:  0  1  2  3  4  5  6  7 
  457.     b:  8  9  A  B  C  D  E  F 
  458.      ================================================================ 
  459.         Data Storage Allocation 
  460.     ================================================================ 
  461.  
  462.     00..0    BSS    expr 
  463.     nn..n    CON(m) expr 
  464.     nn..n    REL(m) expr 
  465.     zy..a    NIBASC 'chars' 
  466.     zy..a    NIBASC \chars\ 
  467.     hh..h    NIBHEX h..hh 
  468.      ================================================================ 
  469.         New Instructions 
  470.     ================================================================ 
  471.  
  472.     818f0m    A=A+CON rfs,d 
  473.     818f1m    B=B+CON rfs,d 
  474.     818f2m    C=C+CON rfs,d 
  475.     818f3m    D=D+CON rfs,d 
  476.  
  477.     818f8m    A=A-CON rfs,d 
  478.     818f9m    B=B-CON rfs,d 
  479.     818fAm    C=C-CON rfs,d 
  480.     818fBm    D=D-CON rfs,d 
  481.  
  482.     819f0    ASRB.F  fs 
  483.     819f1    BSRB.F  fs 
  484.     819f2    CSRB.F  fs 
  485.     819f3    DSRB.F  fs 
  486.  
  487.     81Af00    R0=A.F  fs 
  488.     81Af01    R1=A.F  fs 
  489.     81Af02    R2=A.F  fs 
  490.     81Af03    R3=A.F  fs 
  491.     81Af04    R4=A.F  fs 
  492.  
  493.     81Af08    R0=C.F  fs 
  494.     81Af09    R1=C.F  fs 
  495.     81Af0A    R2=C.F  fs 
  496.     81Af0B    R3=C.F  fs 
  497.     81Af0C    R4=C.F  fs 
  498.   
  499.     81Af10    A=R0.F  fs 
  500.     81Af11    A=R1.F  fs 
  501.     81Af12    A=R2.F  fs 
  502.     81Af13    A=R3.F  fs 
  503.     81Af14    A=R4.F  fs 
  504.  
  505.     81Af18    C=R0.F  fs 
  506.     81Af19    C=R1.F  fs 
  507.     81Af1A    C=R2.F  fs 
  508.     81Af1B    C=R3.F  fs 
  509.     81Af1C    C=R4.F  fs 
  510.  
  511.     81Af20    AR0EX.F fs 
  512.     81Af21    AR1EX.F fs 
  513.     81Af22    AR2EX.F fs 
  514.     81Af23    AR3EX.F fs 
  515.     81Af24    AR4EX.F fs 
  516.  
  517.     81Af28    CR0EX.F fs 
  518.     81Af29    CR1EX.F fs 
  519.     81Af2A    CR2EX.F fs 
  520.     81Af2B    CR3EX.F fs 
  521.     81Af2C    CR4EX.F fs 
  522.  
  523.     81B2    PC=A 
  524.     81B3    PC=C 
  525.     81B4    A=PC 
  526.     81B5    C=PC 
  527.     81B6    APCEX 
  528.     81B7    CPCEX 
  529.      ================================================================ 
  530.         Saturn Registers 
  531.     ================================================================ 
  532.  
  533.     +--------------------------------+ 
  534.     |                                |  A (current object pointer) 
  535.     +--------------------------------+ 
  536.     |                                |  B (RPL return stack pointer) 
  537.     +--------------------------------+ 
  538.     |                                |  C (general purpose) 
  539.     +--------------------------------+ 
  540.     |                                |  D (stack space remaining) 
  541.     +--------------------------------+ 
  542.  
  543.                   +----------+ 
  544.                   |          |  D0 (execution stack pointer) 
  545.                   +----------+ 
  546.                   |          |  D1 (data stack pointer) 
  547.                   +----------+ 
  548.  
  549.                       +--+ 
  550.                       |  |  P 
  551.                       +--+ 
  552.  
  553.                   +----------+ 
  554.                   |          |  PC (program counter) 
  555.                   +----------+ 
  556.  
  557.     +--------------------------------+ 
  558.     |                                |  R0 
  559.     +--------------------------------+ 
  560.     |                                |  R1 
  561.     +--------------------------------+ 
  562.     |                                |  R2 
  563.     +--------------------------------+ 
  564.     |                                |  R3 
  565.     +--------------------------------+ 
  566.     |                                |  R4 
  567.     +--------------------------------+ 
  568.  
  569.                 +--------+ 
  570.                 |        |  IN (16 bits) 
  571.                 +--------+ 
  572.                   |      |  OUT (12 bits) 
  573.                   +------+ 
  574.  
  575.                        +-+ 
  576.                        | |  Carry (1 bit) 
  577.                        +-+ 
  578.  
  579.                 +--------+ 
  580.                 | F .. 0 |  ST (16 bits) 
  581.                 +--------+ 
  582.  
  583.                +-------------+ 
  584.                | MP SB SR XM |  HST (4 bits) 
  585.                +-------------+ 
  586.      ================================================================ 
  587.         Work Sheet 
  588.     ================================================================ 
  589.  
  590.     A:    a 
  591.  
  592.     B:    b 
  593.  
  594.     C:    c 
  595.  
  596.     D:    d 
  597.  
  598.    D0:    d0 
  599.  
  600.    D1:    d1 
  601.  
  602.  RSTK:  
  603.  
  604.    R0:    r0 
  605.  
  606.    R1:    r1 
  607.  
  608.    R2:    r2 
  609.  
  610.    R3:    r3 
  611.  
  612.    R4:    r4 
  613.  
  614.  
  615.    d1:    s1 
  616.  
  617.  d1+5:    s2 
  618.  
  619. d1+10:    s3 
  620.  
  621. d1+15:    s4 
  622.  
  623.  
  624.    s1:     
  625.  
  626.    s2:     
  627.  
  628.    s3:     
  629.  
  630.    s4:     
  631.